package com.demo.core.dao;

import java.util.Map;

import com.demo.core.dao.base.BaseCoreDao;
import com.demo.core.model.Site;

/**
 * 站点数据访问层Dao
 * 
 * @author ryuu.kk
 */
public interface SiteDao extends BaseCoreDao<Site, Long> {

	/**
	 * 更新站点状态信息
	 * @param site 要更新对象
	 * @param siteStatus 站点状态信息
	 * @return 成功操作数 
	 */
	int updateStatus(Site site, Map<String, Object> siteStatus);
	
	/**
	 * 更新站点拥有者信息
	 * @param site 要更新对象
	 * @param siteOwnerInfo 站点拥有者信息(检索参数)
	 * @return 成功操作数
	 */
	int updateOwner(Site site, Map<String, Object> siteOwnerInfo);

	/**
	 * 更新站点URL访问后缀
	 * @param site 要更新对象
	 * @param params 参数信息
	 * @return 成功操作数
	 */
	int updateSuffix(Site site, Map<String, Object> params);
		
	/**
	 * 关闭站点
	 * @param site 要更新对象
	 * @param siteParams 站点参数
	 * @return 成功操作数
	 */
	int close(Site site, Map<String, Object> siteParams);
	
	/**
	 * 更新站点的所属父站
	 * @param siteParams 站点参数
	 * @return 成功操作数
	 * @deprecated 未解决更新左序和右序问题
	 */
	int updateNestedSet(Map<String, Object> siteParams);
	
	/**
	 * 取得站点树
	 * @param params 参数
	 * @return 站点模型对象
	 */
	Site tree(Map<String, Object> params);
}
